package com.gaogzhen.datastructure.queue;

import java.util.Iterator;

/**
 * @author Administrator
 * @version 1.0
 * @description 队列接口
 * @date 2022-11-02 21:00
 */
public interface Queue<E> extends Iterable<E> {
    /**
     * 元素插入队尾
     * @param e 元素
     */
    void offer(E e);

    /**
     * 查看队头元素
     * @return  队头元素
     */
    E peek();

    /**
     * 取出队头元素
     * @return  队头元素
     */
    E poll();

    /**
     * 判断队列是否为空
     * @return {@code true} 队列为空时，否则
     *         {@code false}
     */
    boolean isEmpty();

    /**
     * 返回队列元素个数
     * @return  队列元素个数
     */
    int size();
}
